Spring Batch
批处理框架
Spring Batch 是一个轻量级的、完善的批处理框架,旨在帮助企业建立健壮、高效的批处理应用。Spring Batch是Spring的一个子项目,使用Java语言并基于Spring框架为基础开发,使得已经使用 Spring 框架的开发者或者企业更容易访问和利用企业服务
简介
Spring Batch是一个批处理的框架,作为一个 Spring 组件,提供了通过使用 Spring 的 依赖注入(dependency injection) 来处理批处理的条件。
业务场景
· 周期性的提交批处理
· 把一个任务并行处理
· 消息驱动应用分级处理
· 大规模并行批处理
· 手工或调度使任务失败之后重新启动
· 有依赖步骤的顺序执行(使用工作流驱动扩展)
· 处理时跳过部分记录
· 成批事务:为小批量的或有的存储过程/脚本的场景使用
技术目标
· 开发者使用Spring编程模型,编写具体的业务逻辑。SpringBatch框架提供基础服务。
· 清楚的区分基础服务、执行环境和应用的关系
· 提供基本的执行服务接口。所有的项目都可以去实现这些接口
· 提供基本的执行服务的缺省实现。可以直接拿来使用。
· 可以在框架各层上方便的配置、定制已经扩展
· 核心服务可以在基础服务不受任何影响的情况下轻松的替换或扩展。
· 提供一个基本的部署模型。框架的Jar包完全独立于应用
架构图
Spring Batch使用三层架构,三层分别为应用、核心和基础服务。应用层是用户写的批处理任务核心层包含执行和控制任务必须的核心类。如JobLauncher、Job和Step的实现。应用和核心层基于一层公用的基础服务。基础服务包括通用的Reader,Writers,RetryTemplate。
优势
Spring Batch 是 SpringSource 和 Accenture(埃森哲)合作开发的。Accenture 在批处理架构上有着丰富的工业级别的经验,贡献了之前专用的批处理体系框架(这些框架历经数十年研发和使用,为Spring Batch提供了大量的参考经验);SpringSource则有着深刻的技术认知和Spring框架编程模型。
Spring Batch 框架通过提供丰富的即开即用的组件、和高可靠性、高扩展性的能力,使得开发批处理应用的人员专注于业务的处理,提升批处理应用的开发效率,通过 Spring Batch 可以快速的构建出轻量级的健壮的并行处理应用。
参考资料
最新修订时间:2023-02-09 12:47
目录
概述
简介
业务场景
技术目标
参考资料